Transfer
The Transfer API allows the originating bank to provide payment instructions to the Visa B2B Connect service to the beneficiary bank. This API has been enhanced to support Out-of-Network payments with the addition of creditor fields relevant for out-of-network payments.
NOTE: This 'Transfer' API is applicable, only if the companies are pre-created by the Bank
Method: POST
{{URL}}/jsonrpc
Headers
Name | Value |
---|---|
Content-Type | application/json |
Example
Payload Parameters
Parameter | Description |
---|---|
id Mandatory | String Unique ID for each request |
jsonrpc Mandatory | String JSON RPC VERSION - should be "2.0" |
method Mandatory | String Method Name - should be "VisaService.Transfer" |
params Mandatory | Object |
api Mandatory | Object |
credential Mandatory | String API credential provided by NetXD |
signature Mandatory | String Signature of the digitally signed payload |
payload Mandatory | Object |
creationDateTime Mandatory | String Date and time of the payment instruction was created Example – "2020-05-11T15:15:13+00:00" |
endToEndIdentification Mandatory | String Unique identifier to track the transaction Example – "R1706545043112467 " |
paymentPurpose Conditional Mandatory (Based on Country and Currency) | String Reason for the transaction Example – "Export bills " |
paymentPurposeCode Conditional Mandatory (Based on Country and Currency) | String Code to identify the purpose of payment Example – "548 " |
unstructuredRemittance Optional | String Free form remittance, typically corresponds to Originator-to-Beneficiary Information (OBI) Example – "test payments " |
description Optional | String General description of the transaction Example – "Transfer" |
chargeBearer Optional | String Sender or beneficiary who bears the charges for the transaction Example – "DEBT" |
creditorAgentIBAN Conditional Mandatory (Based on Country and Currency) | String International Account number of creditor's bank or financial institution Example – "AZ21NABZ00000000137010001944" |
creditorAgentTaxID Conditional Mandatory (Based on Country and Currency) | String Tax identification number of creditor's bank or financial institution Example – "A1BCD1234ABCD1234A1B2C3D41234ABC123" |
instructedAmount | Object |
amount Mandatory | String Amount of the transaction Example – "1.10" |
currency Mandatory | String Currency in which the transaction is carried out Example – "DZD" |
creditorAgent | Object |
bic Conditional Mandatory (Based on Country and Currency) | String BIC of Beneficiary Bank (Creditor Agent). Field length: 8-11 characters Example – "BALGDZAPXXX" |
clearingMemberId Conditional Mandatory (Based on Country and Currency) | String Clearing Member ID of Beneficiary Bank (Creditor Agent) Example – "FW12354345" |
branchId Conditional Mandatory (Based on Country and Currency) | String Branch ID of creditor's specific bank Example – "10039999" |
branchName Conditional Mandatory (Based on Country and Currency) | String Branch Name of creditor's specific bank Example – "Creditor Test Branch Name" |
creditorAccount | Object |
name Optional | String Name of the beneficiary account holder Example – "mark hassan" |
accountNumber Conditional Mandatory (Based on Country and Currency) | String Account number of the beneficiary Account Number is mandatory if creditor bank's Enterprise ID or Iban is not provided Example – "12345679991234567999" |
iban Conditional Mandatory (Based on Country and Currency) | String International Bank Account Number that provides additional information to help in identifying overseas payment Iban is mandatory if creditor bank's Account Number or Enterprise ID is not provided Example – "ZZ43214321432143214321" |
address Optional | String Address of the beneficiary account Example – "2 Creditor Test Address Wolfsburg Germany 38440" |
phoneNumber Conditional Mandatory (Based on Country and Currency) | String Contact phone number of the beneficiary account Example – "+49-8963648018" |
taxId Conditional Mandatory (Based on Country and Currency) | String Tax identification number of the account holder Example – "Test12345" |
taxIndicator Optional | String Tax code that indicates the type of tax information provided Example – "INC" |
contactName Conditional Mandatory (Based on Country and Currency) | String Contact name for inquiries related to the account Example – "John" |
debtorAccount | Object |
enterpriseId Conditional Mandatory (Mandatory if debtor accountNumber is not provided) | String Code that is uniquely assigned to an enterprise by an issuing agency Example – "V-CAN-CAD-00000876-100007640-001" |
- cURL
- C#
- Go
- NodeJs
curl --location --globoff '{{URL}}/jsonrpc' \
--header 'Content-Type: application/json' \
--data '{"id":"1","jsonrpc":"2.0","method":"VisaService.Transfer","params":{"api":{"credential":"Basic c3VwcG9ydCsxQG5ldHN5cy1pbmMuY29tOjM5ZDYxOGJkNTVmNzQ4ZGQ4ZWY4NWI5NWQxY2RlNDE5","signature":"{{signature}}"},"payload":{"creationDateTime":"2020-05-11T15:15:13+00:00","endToEndIdentification":"R1706545043112467","paymentPurpose":"Export bills","paymentPurposeCode":"548","unstructuredRemittance":"test payments","description":"Transfer","chargeBearer":"DEBT","creditorAgentIBAN":"AZ21NABZ00000000137010001944","creditorAgentTaxID":"A1BCD1234ABCD1234A1B2C3D41234ABC123","instructedAmount":{"amount":"1.10","currency":"DZD"},"creditorAgent":{"bic":"BALGDZAPXXX","clearingMemberId":"FW12354345","branchId":"10039999","branchName":"Creditor Test Branch Name"},"creditorAccount":{"name":"mark hassan","accountNumber":"12345679991234567999","iban":"ZZ43214321432143214321","address":"2 Creditor Test Address Wolfsburg Germany 38440","phoneNumber":"+49-8963648018","taxId":"Test12345","taxIndicator":"INC","contactName":"John"},"debtorAccount":{"enterpriseId": "V-CAN-CAD-00000876-100007640-001"}}}}'
var options = new RestClientOptions("{{URL}}/jsonrpc")
{
MaxTimeout = -1,
};
var client = new RestClient(options);
var request = new RestRequest("", Method.Post);
request.AddHeader("Content-Type", "application/json");
var body = @"{
" + "\n" +
@" ""id"": ""1"",
" + "\n" +
@" ""jsonrpc"": ""2.0"",
" + "\n" +
@" ""method"": ""VisaService.Transfer"",
" + "\n" +
@" ""params"": {
" + "\n" +
@" ""api"": {
" + "\n" +
@" ""credential"": ""Basic c3VwcG9ydCsxQG5ldHN5cy1pbmMuY29tOjM5ZDYxOGJkNTVmNzQ4ZGQ4ZWY4NWI5NWQxY2RlNDE5"",
" + "\n" +
@" ""signature"": ""{{signature}}""
" + "\n" +
@" },
" + "\n" +
@" ""payload"": {
" + "\n" +
@" ""creationDateTime"": ""2020-05-11T15:15:13+00:00"",
" + "\n" +
@" ""endToEndIdentification"": ""R1706545043112467"",
" + "\n" +
@" ""paymentPurpose"": ""Export bills"",
" + "\n" +
@" ""paymentPurposeCode"": ""548"",
" + "\n" +
@" ""unstructuredRemittance"": ""test payments"",
" + "\n" +
@" ""description"": ""Transfer"",
" + "\n" +
@" ""chargeBearer"": ""DEBT"",
" + "\n" +
@" ""creditorAgentIBAN"": ""AZ21NABZ00000000137010001944"",
" + "\n" +
@" ""creditorAgentTaxID"": ""A1BCD1234ABCD1234A1B2C3D41234ABC123"",
" + "\n" +
@" ""instructedAmount"": {
" + "\n" +
@" ""amount"": ""1.10"",
" + "\n" +
@" ""currency"": ""DZD""
" + "\n" +
@" },
" + "\n" +
@" ""creditorAgent"": {
" + "\n" +
@" ""bic"": ""BALGDZAPXXX"",
" + "\n" +
@" ""clearingMemberId"": ""FW12354345"",
" + "\n" +
@" ""branchId"": ""10039999"",
" + "\n" +
@" ""branchName"": ""Creditor Test Branch Name""
" + "\n" +
@" },
" + "\n" +
@" ""creditorAccount"": {
" + "\n" +
@" ""name"": ""mark hassan"",
" + "\n" +
@" ""accountNumber"": ""12345679991234567999"",
" + "\n" +
@" ""iban"": ""ZZ43214321432143214321"",
" + "\n" +
@" ""address"": ""2 Creditor Test Address Wolfsburg Germany 38440"",
" + "\n" +
@" ""phoneNumber"": ""+49-8963648018"",
" + "\n" +
@" ""taxId"": ""Test12345"",
" + "\n" +
@" ""taxIndicator"": ""INC"",
" + "\n" +
@" ""contactName"": ""John""
" + "\n" +
@" },
" + "\n" +
@" ""debtorAccount"": {
" + "\n" +
@" ""enterpriseId"": ""V-CAN-CAD-00000876-100007640-001"",
" + "\n" +
@" }
" + "\n" +
@" }
" + "\n" +
@" }
" + "\n" +
@"}";
request.AddStringBody(body, DataFormat.Json);
RestResponse response = await client.ExecuteAsync(request);
Console.WriteLine(response.Content);
package main
import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)
func main() {
url := "{{URL}}/jsonrpc"
method := "POST"
payload := strings.NewReader(`{`+"
"+`
"id": "1",`+"
"+`
"jsonrpc": "2.0",`+"
"+`
"method": "VisaService.Transfer",`+"
"+`
"params": {`+"
"+`
"api": {`+"
"+`
"credential": "Basic c3VwcG9ydCsxQG5ldHN5cy1pbmMuY29tOjM5ZDYxOGJkNTVmNzQ4ZGQ4ZWY4NWI5NWQxY2RlNDE5",`+"
"+`
"signature": "{{signature}}"`+"
"+`
},`+"
"+`
"payload": {`+"
"+`
"creationDateTime": "2020-05-11T15:15:13+00:00",`+"
"+`
"endToEndIdentification": "R1706545043112467",`+"
"+`
"paymentPurpose": "Export bills",`+"
"+`
"paymentPurposeCode": "548",`+"
"+`
"unstructuredRemittance": "test payments",`+"
"+`
"description": "Transfer",`+"
"+`
"chargeBearer": "DEBT",`+"
"+`
"creditorAgentIBAN": "AZ21NABZ00000000137010001944",`+"
"+`
"creditorAgentTaxID": "A1BCD1234ABCD1234A1B2C3D41234ABC123",`+"
"+`
"instructedAmount": {`+"
"+`
"amount": "1.10",`+"
"+`
"currency": "DZD"`+"
"+`
},`+"
"+`
"creditorAgent": {`+"
"+`
"bic": "BALGDZAPXXX",`+"
"+`
"clearingMemberId": "FW12354345",`+"
"+`
"branchId": "10039999",`+"
"+`
"branchName": "Creditor Test Branch Name"`+"
"+`
},`+"
"+`
"creditorAccount": {`+"
"+`
"name": "mark hassan",`+"
"+`
"accountNumber": "12345679991234567999",`+"
"+`
"iban": "ZZ43214321432143214321",`+"
"+`
"address": "2 Creditor Test Address Wolfsburg Germany 38440",`+"
"+`
"phoneNumber": "+49-8963648018",`+"
"+`
"taxId": "Test12345",`+"
"+`
"taxIndicator": "INC",`+"
"+`
"contactName": "John"`+"
"+`
},`+"
"+`
"debtorAccount": {`+"
"+`
"enterpriseId": "V-CAN-CAD-00000876-100007640-001",`+"
"+`
}`+"
"+`
}`+"
"+`
}`+"
"+`
}`)
client := &http.Client {
}
req, err := http.NewRequest(method, url, payload)
if err != nil {
fmt.Println(err)
return
}
req.Header.Add("Content-Type", "application/json")
res, err := client.Do(req)
if err != nil {
fmt.Println(err)
return
}
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(body))
}
var https = require('follow-redirects').https;
var fs = require('fs');
var options = {
'method': 'POST',
'hostname': '{{URL}}',
'path': '/jsonrpc',
'headers': {
'Content-Type': 'application/json'
},
'maxRedirects': 20
};
var req = https.request(options, function (res) {
var chunks = [];
res.on("data", function (chunk) {
chunks.push(chunk);
});
res.on("end", function (chunk) {
var body = Buffer.concat(chunks);
console.log(body.toString());
});
res.on("error", function (error) {
console.error(error);
});
});
var postData = JSON.stringify({
"id": "1",
"jsonrpc": "2.0",
"method": "VisaService.Transfer",
"params": {
"api": {
"credential": "Basic c3VwcG9ydCsxQG5ldHN5cy1pbmMuY29tOjM5ZDYxOGJkNTVmNzQ4ZGQ4ZWY4NWI5NWQxY2RlNDE5",
"signature": "{{signature}}"
},
"payload": {
"creationDateTime": "2020-05-11T15:15:13+00:00",
"endToEndIdentification": "R1706545043112467",
"paymentPurpose": "Export bills",
"paymentPurposeCode": "548",
"unstructuredRemittance": "test payments",
"description": "Transfer",
"chargeBearer": "DEBT",
"creditorAgentIBAN": "AZ21NABZ00000000137010001944",
"creditorAgentTaxID": "A1BCD1234ABCD1234A1B2C3D41234ABC123",
"instructedAmount": {
"amount": "1.10",
"currency": "DZD"
},
"creditorAgent": {
"bic": "BALGDZAPXXX",
"clearingMemberId": "FW12354345",
"branchId": "10039999",
"branchName": "Creditor Test Branch Name"
},
"creditorAccount": {
"name": "mark hassan",
"accountNumber": "12345679991234567999",
"iban": "ZZ43214321432143214321",
"address": "2 Creditor Test Address Wolfsburg Germany 38440",
"phoneNumber": "+49-8963648018",
"taxId": "Test12345",
"taxIndicator": "INC",
"contactName": "John"
},
"debtorAccount": {
"enterpriseId": "V-CAN-CAD-00000876-100007640-001"
}
}
}
});
req.write(postData);
req.end();
Body
{
"id": "1",
"jsonrpc": "2.0",
"method": "VisaService.Transfer",
"params": {
"api": {
"credential": "Basic c3VwcG9ydCsxQG5ldHN5cy1pbmMuY29tOjM5ZDYxOGJkNTVmNzQ4ZGQ4ZWY4NWI5NWQxY2RlNDE5",
"signature": "{{signature}}"
},
"payload": {
"creationDateTime": "2020-05-11T15:15:13+00:00",
"endToEndIdentification": "R1706545043112467",
"paymentPurpose": "Export bills",
"paymentPurposeCode": "548",
"unstructuredRemittance": "test payments",
"description": "Transfer",
"chargeBearer": "DEBT",
"creditorAgentIBAN": "AZ21NABZ00000000137010001944",
"creditorAgentTaxID": "A1BCD1234ABCD1234A1B2C3D41234ABC123",
"instructedAmount": {
"amount": "1.10",
"currency": "DZD"
},
"creditorAgent": {
"bic": "BALGDZAPXXX",
"clearingMemberId": "FW12354345",
"branchId": "10039999",
"branchName": "Creditor Test Branch Name"
},
"creditorAccount": {
"name": "mark hassan",
"accountNumber": "12345679991234567999",
"iban": "ZZ43214321432143214321",
"address": "2 Creditor Test Address Wolfsburg Germany 38440",
"phoneNumber": "+49-8963648018",
"taxId": "Test12345",
"taxIndicator": "INC",
"contactName": "John"
},
"debtorAccount": {
"enterpriseId": "V-CAN-CAD-00000876-100007640-001"
}
}
}
}
Response: 201
Response Parameters
Parameter | Description |
---|---|
jsonrpc | String JSON RPC VERSION Example: "2.0" |
result | Object |
processId | String Unique ID for payment as assigned by NetXD Example: "000000003116" |
status | String Status of the Payment Example: "IN_PROCESS" |
endToEndIdentification | String End to End ID assigned by Originating Bank (Debtor Agent) Example: "R1706545043112468" |
transactionId | String Transaction ID Example: "6644ab9fd857fa6a9762a0e0" |
id | String Unique ID for each request Example: "1" |
{
"jsonrpc": "2.0",
"result": {
"processId": "000000003116",
"status": "IN_PROCESS",
"endToEndIdentification": "R1706545043112468",
"transactionId": "6644ab9fd857fa6a9762a0e0"
},
"id": "1"
}